Retrieving performance data from devices in a storage area network

ABSTRACT

A system and method for retrieving performance data from different devices in a storage area network (SAN) use a performance interface to communicate with different types of SAN devices in a heterogeneous SAN environment. The performance interface instructs a device plug-in (DPI) associated with each SAN device to retrieve performance metrics data from the corresponding SAN device. The performance interface determines a minimum polling interval and a maximum polling interval for polling each SAN device for the performance metrics data. The performance interface further provides each DPI with an address of the corresponding SAN device.

CROSS-REFERENCE TO RELATED APPLICATION(S)

This is a Continuation of copending application Ser. No. 10/687,595filed on Oct. 20, 2003, which is hereby incorporated by reference in itsentirety.

TECHNICAL FIELD

The technical field relates to storage area networks, and, inparticular, to improvements in monitoring the performance of a storagearea network.

BACKGROUND

A storage area network (SAN) is a network of elements including multipleservers, multiple storage devices (such as disk arrays and tapelibraries), and a high-speed network of interconnecting elements (suchas fiber channels, switches, hubs, and bridges) that establishes directand indirect connections between the servers, between the storagedevices, and between the servers and the storage devices.

SANs are, however, typically made of heterogeneous modules. As a resultof their versatility and popularity, a number of different SAN devicesexist on the market, each having its own protocols and requirements.Further, current SAN management tools are often vendor-dependent andsystem-dependent. Since each SAN device may be produced by a differentvendor, and each SAN device may have its own proprietary communicationsystems and information, the management of SAN resources is a difficulttask for storage administrators.

SUMMARY

A method for using a performance interface to retrieve performance datafrom SAN devices in a storage area network (SAN) includes instructing adevice plug-in (DPI) to retrieve performance metrics data from acorresponding SAN device, determining a minimum polling interval forpolling the SAN device for the performance metrics data, determining amaximum polling interval for polling the SAN device for the performancemetrics data, and collecting the performance metrics data from the DPIusing the performance interface.

DESCRIPTION OF THE DRAWINGS

The preferred embodiments of the method and apparatus for retrievingperformance data from SAN devices in a local area network (SAN) will bedescribed in detail with reference to the following figures, in whichlike numerals refer to like elements, and wherein:

FIG. 1 illustrates an exemplary system for retrieving performance datafrom SAN devices in a SAN;

FIG. 2 illustrates an exemplary device plug-in (DPI) that is used in theexemplary system of FIG. 1 for retrieving performance data;

FIG. 3 is a flowchart illustrating an exemplary method for using aperformance interface to retrieve performance data from SAN devices in aSAN; and

FIG. 4 illustrates exemplary hardware components of a computer that maybe used in connection with the exemplary method for using a performanceinterface to retrieve performance data from SAN devices in a SAN.

DETAILED DESCRIPTION

A system and method for retrieving performance data from differentdevices in a storage area network (SAN) use a performance interface tocommunicate effectively with different types of SAN devices in aheterogeneous SAN environment. The performance interface instructs adevice plug-in (DPI) associated with each SAN device to retrieveperformance metrics data from the corresponding SAN device. Theperformance interface determines a minimum polling interval and amaximum polling interval for polling each SAN device for the performancemetrics data. The performance interface further provides each DPI withan address of the corresponding SAN device.

The performance interface may be implemented with a storage area manager(SAM) and a storage optimizer, such as the OPENVIEW® SAM and storageoptimizer. The SAM supports enterprise storage utility services withintegrated tools that help information technology (IT) departmentsreduce storage management costs, protect existing storage investments,efficiently utilize resources, and deliver guaranteed quality of serviceto customers, partners, and employees. The SAM enables systemadministrators to simplify and automate management of multivendorstorage resources across disk, tape, direct-attach, and networkedstorage infrastructures. The SAM can also centrally manage and monitoravailability, performance, usage, growth, and cost across a distributedenterprise. Further, the SAM enables system administrators to optimizeresource utilization and operations, and to seamlessly integrate storageand storage services with the enterprise-wide IT service managementsystem.

The storage optimizer may, from a single management station, monitor theperformance of storage network components, including hosts,infrastructure and storage. The storage optimizer also collects data andprovides a complete reporting structure for evaluating, monitoring andmanaging the quality and cost of IT services. System administrators canreceive automatic notification of impending performance problems beforethe problems become serious, and can track performance of the systemcomponents over time. The storage optimizer helps system administratorspredict problems and improve efficiencies while optimizing investment innetworked storage. The combination of performance monitoring, historicaltracking, and trend analysis makes the storage optimizer a powerful toolfor analyzing and upgrading storage infrastructure.

FIG. 1 illustrates an exemplary system for retrieving performance datafrom SAN devices in a SAN. Referring to FIG. 1, a SAN 110 includesseveral SAN devices 120, such as storage arrays, and correspondingdevice plug-ins (DPIs) 130 for each SAN device 120. A DPI 130 is Javacode specifically written to the specifications of the SAN managementsoftware. The DPI 130 allows the corresponding SAN device 120 tocommunicate with a SAN management application 160. The DPI 130 isspecific to each SAN device 120 and may be developed by any softwaredeveloper. The DPI 130 may communicate with the corresponding SAN device120 directly using, for example, Simple Network Management Protocol(SNMP). Other SAN devices 120 may require a separate host machine 125 tocommunicate with the corresponding DPIs 130. The host machine 125typically maintains a database (not shown) that stores performance datafor the SAN device 120.

With continued reference to FIG. 1, the SAN 110 is managed by the SANmanagement application 160. The SAN management application 160 includescorresponding abstract data sources 150 for each SAN device 120 and aperformance application 170. The abstract data source 150 may be Javacode. The performance application 170 collects performance metrics datafrom the SAN devices 120 in the SAN 110. Examples of performance metricsdata include a number of device write operations, read operations, andcache hits. Each abstract data source 150 within the SAN managementapplication 160 has a one-to-one relationship with each SAN device 120.The abstract data source 150 uses the methods defined within performanceinterface 140 (shown in FIG. 2) to communicate with the SAN device 120through the corresponding DPI 130.

FIG. 2 illustrates an exemplary DPI 130 that is used in the exemplarysystem of FIG. 1 for retrieving performance data. The DPI 130 is abuilding block of interfaces, such as the performance interface 140, aninterface 141 for reporting port information, and an interface 142 forreporting internal disk information. The performance interface 140 is aninterface between the DPI 130 and the corresponding abstract datasources 150. As noted above, each abstract data source 150 has aone-to-one relationship with each SAN device 120. When the abstract datasource 150 makes a request for performance data, the DPI 130 implementsmethods (i.e., Java code) in the performance interface 140 to retrievethe performance metrics data from the corresponding SAN device 120.Different SAN devices 120 provide performance data in different formats.The performance interface 140 provides a single method the performanceapplication 170 can call to retrieve performance metrics data from theSAN devices 120 in a SAN 110.

The performance interface 140 includes a function indicator 145 thatinstructs the DPI 130 to retrieve performance data from thecorresponding SAN device 120. When the performance application 170collects performance metric data from a given SAN device 120, thecorresponding abstract data source 150 may make a request to thecorresponding DPI 130. The DPI 130 implements the methods in theperformance interface 140, which instructs the DPI 130 to retrieve therequisite performance metric data from the corresponding SAN device 120.The performance interface 140 allows the individual DPI 130 to utilizewhatever means necessary to gather the information from thecorresponding SAN device 120. For example, the DPI 130 may perform atask to collect performance data. Examples of the task include: readinglog files maintained by a SAN device 120, navigating the structure ofinternal counters maintained by the SAN device 120, and implementingspecific application programming interface (API) calls into managementsoftware for the SAN device 120.

The performance interface 140 further includes a minimum pollingindicator 146 and a maximum polling indicator 147. The performanceapplication 170 may periodically “poll” all SAN devices 120 to obtainperformance metric data. The minimum polling indicator 146 determines aminimum polling interval for polling a SAN device 120 for performancedata. The minimum polling interval is the shortest time betweenperformance metric collection that should occur. The minimum pollinginterval may vary from SAN device 120 to SAN device 120 according to therate a SAN device 120 updates its performance data. The minimum pollinginterval may be a matter of seconds (such as for an Interconnect device)or as long as an hour (such as for a disk array device).

The maximum polling indicator 147 determines a maximum polling intervalfor polling a SAN device 120 for performance data. The maximum pollinginterval is the longest time between performance metric collection thatshould be allowed to occur. The maximum polling interval may vary fromSAN device 120 to SAN device 120 similar to the minimum pollinginterval. The performance interface 140 determines the minimum pollinginterval and the maximum polling interval for each SAN device 120,enabling each SAN device 120 to be accurately polled by the performanceapplication 170 at a rate between the minimum and the maximum pollingintervals.

The performance interface 140 further includes an address indicator 148that automatically provides the DPI 130 with the address of the SANdevice 120. For example, if the SAN device 120 communicates with thecorresponding DPI 130 through a host machine, the host machine 125typically maintains the database that stores performance data for thecorresponding SAN device 120. The performance interface 140 may providethe DPI 130 with the address on the host machine 125 to retrieve theperformance metrics data for the corresponding SAN device 120. Theperformance application 170 does not need to “know” whether a DPI 130communicates with the corresponding SAN device 120 directly or through ahost machine 125.

FIG. 3 is a flowchart illustrating an exemplary method for using aperformance interface to retrieve performance data from SAN devices 120in a SAN 110. The performance interface 140 determines a minimum pollinginterval and a maximum polling interval for polling each SAN device 120for the performance metrics data (block 310). After establishing thepolling interval (block 320), the performance interface 140 provideseach DPI 130 with the address of the corresponding SAN device 120 (block330). Next, the performance interface 140 instructs the DPI 130 toretrieve performance metrics data from the corresponding SAN device 120(block 350). The DPI 130 may perform a task to collect the performancemetrics data. The task may include reading log files maintained by a SANdevice 120, navigating the structure of internal counters maintained bythe SAN device 120, and implementing specific application programminginterface (API) calls into management software for the SAN device 120.The performance application 170 then collects the performance metricsdata using the performance interface 140 (block 360).

FIG. 4 illustrates exemplary hardware components of a computer 400 thatmay be used in connection with the method for retrieving performancedata from SAN devices 120 in a SAN 110. The computer 400 includes aconnection 420 with a network 418 such as the Internet or other type ofcomputer or telephone network. The computer 400 typically includes amemory 402, a secondary storage device 412, a processor 414, an inputdevice 416, a display device 410, and an output device 408.

The memory 402 may include random access memory (RAM) or similar typesof memory. The secondary storage device 412 may include a hard diskdrive, floppy disk drive, CD-ROM drive, or other types of non-volatiledata storage, and may correspond with various databases or otherresources. The processor 414 may execute information stored in thememory 402, the secondary storage 412, or received from the Internet orother network 418. The input device 416 may include any device forentering data into the computer 400, such as a keyboard, keypad,cursor-control device, touch-screen (possibly with a stylus), ormicrophone. The display device 410 may include any type of device forpresenting visual image, such as, for example, a computer monitor,flat-screen display, or display panel. The output device 408 may includeany type of device for presenting data in hard copy format, such as aprinter, and other types of output devices including speakers or anydevice for providing data in audio form. The computer 400 can possiblyinclude multiple input devices, output devices, and display devices.

Although the computer 400 is depicted with various components, oneskilled in the art will appreciate that the computer 400 can containadditional or different components. In addition, although aspects of animplementation consistent with the method for retrieving performancedata from SAN devices 120 in a SAN 110 are described as being stored inmemory, one skilled in the art will appreciate that these aspects canalso be stored on or read from other types of computer program productsor computer-readable media, such as secondary storage devices, includinghard disks, floppy disks, or CD-ROM; a carrier wave from the Internet orother network; or other forms of RAM or ROM. The computer-readable mediamay include instructions for controlling the computer 400 to perform aparticular method.

While the system and method for retrieving performance data from SANdevices in a SAN have been described in connection with an exemplaryembodiment, those skilled in the art will understand that manymodifications in light of these teachings are possible, and thisapplication is intended to cover variations thereof.

1. A method for retrieving performance data from storage area network(SAN) devices, each SAN device corresponding to a device plug-in (DPI),the method comprising: determining a minimum polling interval forpolling a SAN device; determining a maximum polling interval for pollingthe SAN device; and using the DPI to retrieve the performance data fromthe corresponding SAN device by polling the SAN device.
 2. The method ofclaim 1, further comprising polling each SAN device at an intervalbetween the minimum polling interval and the maximum polling interval.3. The method of claim 1, wherein the using the DPI step furthercomprises using a performance interface to retrieve performance data bypolling the corresponding SAN device.
 4. The method of claim 1, furthercomprising instructing the DPI to communicate directly with the SANdevice using simple network management protocol.
 5. The method of claim1, further comprising instructing the DPI to communicate with a hostmachine to retrieve performance data from a storage array.
 6. The methodof claim 1, wherein the using the DPI step further comprisescommunicating with an abstract data source that has a one-to-onerelationship with the SAN device, wherein the abstract data sourcereceives from and transmits data to the corresponding DPI.
 7. The methodof claim 6, wherein the abstract data sources are Java code.
 8. Themethod of claim 1, further comprising providing the DPI with an addressof the corresponding SAN device.
 9. A system for retrieving performancedata from storage area network (SAN) devices, comprising: a plurality ofdevice plug-ins (DPIs), wherein each DPI corresponds to a SAN device andcomprises: a minimum polling indicator determining a minimum pollinginterval for polling the corresponding SAN device; and a maximum pollingindicator determining a maximum polling interval for polling thecorresponding SAN device; and a performance application that uses theplurality of DPIs to retrieve the performance data from thecorresponding SAN devices by polling the SAN devices.
 10. The system ofclaim 9, wherein each DPI further comprises a performance interface thatenables each SAN device to be polled.
 11. The system of claim 9, whereineach DPI communicates directly with the corresponding SAN device usingsimple network management protocol.
 12. The system of claim 9, whereineach DPI communicates with a host machine to retrieve performance datafrom a storage array.
 13. The system of claim 9, wherein each DPIfurther comprises an address indicator that provides the DPI with anaddress of the corresponding SAN device.
 14. The system of claim 9,wherein each DPI further comprises a function indicator instructing theDPI to retrieve performance data from the corresponding SAN device. 15.The system of claim 9, further comprising a plurality of abstract datasources, wherein each abstract data source corresponds to a SAN device,and receives from and transmits data to the corresponding DPI.
 16. Thesystem of claim 9, wherein the performance application polls the SANdevices at an interval between the minimum polling interval and themaximum polling interval.
 17. The system of claim 9, wherein each DPIreads log files maintained by the corresponding SAN device to retrievethe performance data.
 18. The system of claim 9, wherein each DPInavigates a structure of internal counters maintained by thecorresponding SAN device.
 19. The system of claim 9, wherein each DPIimplements specific application programming interface (API) calls intomanagement software for the corresponding SAN device.
 20. A computerreadable medium providing instructions for retrieving performance datafrom storage area network (SAN) devices, each SAN device correspondingto a device plug-in (DPI), the instructions comprising: determining aminimum polling interval for polling a SAN device; determining a maximumpolling interval for polling the SAN device; and using the DPI toretrieve the performance data from the corresponding SAN device bypolling the SAN device.